Application testing is a major component in a development lifecycle of software applications. Application testing can, in some instances, consume as much or more time as development of an application itself. In such context, automation of manual application testing tasks can provide huge improvements in speed and accuracy during testing of developed software applications and ensure quality of developed applications.
Currently, in automated application testing, a test engineer can use “record and playback” test automation tools. These tools require the test engineer to manually record test steps of a test case and then play it back on the application. Recording the test steps involves recording all aspects of a user's interaction with the application, for example, mouse clicks, data entry, observing actions and results, and the like. Additionally, expected test results need to be manually specified to a testing tool and this activity needs to be repeated for most of the test steps in each test case.
There are several technical problems in conventional systems and methods of automated application testing. It is common for software applications being tested to have over fifty thousand test cases and a huge amount of effort is needed to manually record the test steps for each test case and specify the expected test results for multiple test steps of each test case. Additional manual effort is required for development of application regression test suites. Conventional systems and methods are therefore prone to errors due to the large number of test cases and the huge amount of manual effort involved. Further, there are inconsistencies in implementation because different test engineers may automate the test cases differently. There is also a requirement for increased maintenance efforts of a test automation script in case of any changes in an application being tested, for example, new features added to the application or existing features modified in the application. The test scripts created manually need to also be updated manually due to changes in the application being tested. Additionally, quality issues can arise due to errors in the test automation script created by the test engineer and therefore the test automation script itself needs to be tested to ensure that the application is being tested by the test script as per requirements.